/*
 * Copyright 2013 University of Padua, Italy
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package it.dei.unipd.healthservice.resource;

import java.sql.Date;
import it.dei.unipd.healthservice.resource.StatoOrdineMateria;

/**
 * Ordine effettuato da una fabbrica
 * 
 * @author Giorgio Vitale
 * @version 1.00
 */
public class OrdineMateria {
	/**
	 * nome della fabbrica che ha richiesto l'ordine
	 */
	private final String login;
	/**
	 * ID dell'ordine
	 */
	private final int idOrdine;
	/**
	 * Stato dell'ordine
	 */
	private final StatoOrdineMateria stato;
	/**
	 * Data creazione dell'ordine
	 */
	private final Date dataOrdine;
	/**
	 * Data consegna dell'ordine
	 */
	private final Date dataConsegna;
	
	/**
	 * Crea un nuovo elemento specificando tutti i campi
	 * @login
	 * 		id della fabbrica
	 * @idOrdine
	 * 		id distintivo dell'ordine
	 * @stato
	 * 		Stato in cui si trova l'ordine attualmente
	 * @dataOrdine
	 * 		Data dell'effettuazione dell'ordine
	 * @dataConsegna
	 * 		Data prevista per la ricezione degli elementi ordinati
	 */
	public OrdineMateria(String login, int idOrdine, StatoOrdineMateria stato, Date dataOrdine, Date dataConsegna){
		this.login = login;
		this.idOrdine = idOrdine;
		this.stato = stato;
		this.dataOrdine = dataOrdine;
		this.dataConsegna = dataConsegna;
	}

	/**
	 * Restituisce l'id della fabbrica
	 *@return  l'id della fabbrica
	 */
	public String getLogin() {
		return login;
	}

	/**
	 * Restituisce l'id dell'ordine
	 *@return  l'id dell'ordine
	 */
	public int getIdOrdine() {
		return idOrdine;
	}

	/**
	 * Restituisce lo stato attuale dell'ordine
	 *@return  lo stato dell'ordine
	 */
	public StatoOrdineMateria getStato() {
		return stato;
	}

	/**
	 * Restituisce la data in cui è stato effettuato l'ordine
	 *@return  la data in cui è stato effettuato l'ordine
	 */
	public Date getDataOrdine() {
		return dataOrdine;
	}
	
	
	/**
	 * Restituisce la data in cui è prevista la ricezione degli elementi ordinati
	 *@return  la data in cui è prevista la ricezione degli elementi ordinati
	 */
	public Date getDataConsegna() {
		return dataConsegna;
	}

}
